#-*- coding: utf-8 -*-

#This file is part of pyLot library.
#
# pyLot is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyLot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with pyLot.  If not, see <http://www.gnu.org/licenses/>.

__author__ = u'Pierre Puiseux, Guillaume Baty'
__copyright__ = u"Copyright 2011-2012 (C) andheo, Université de Pau et des Pays de l'Adour"
__credits__ = [u'Pierre Puiseux', u'Guillaume Baty']
__license__ = "GNU Lesser General Public License"

__all__ = [
  'indent_xml',
  'node_to_xml',
  'xml_to_node',
  'etree'
  ]

try:
  import xml.etree.cElementTree as etree
except ImportError :
  import xml.etree.ElementTree as etree

def indent_xml(elem, level=0, indent=u"  "):
  i = u"\n" + level * indent
  if len(elem):
    if not elem.text or not elem.text.strip():
      elem.text = i + indent
    if not elem.tail or not elem.tail.strip():
      elem.tail = i
    for elem in elem:
      indent_xml(elem, level + 1, indent=indent)
    if not elem.tail or not elem.tail.strip():
      elem.tail = i
  else:
    if level and (not elem.tail or not elem.tail.strip()):
      elem.tail = i

def node_to_xml(node, stream, indent=u"  ", encoding='UTF-8'):
  indent_xml(node, indent=indent)
  tree = etree.ElementTree(node)
  tree.write(stream, encoding=encoding, xml_declaration=True)

def xml_to_node(filepath):
  tree = etree.parse(filepath)
  return tree.getroot()



if __name__ == '__main__' :
  pass
